﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using System.Text.RegularExpressions;

namespace DataAccessComponents
{
    /// <summary>
    /// Klasa odzwierciedlająca tabele "Stanowisko"
    /// </summary>
    public class Stanowisko : IDataErrorInfo
    {
        /// <summary>
        /// Id stanowiska
        /// </summary>
        private int id_stanowiska;

        public int Id_stanowiska
        {
            get { return this.id_stanowiska; }
            set { this.id_stanowiska = value; }
        }

        /// <summary>
        /// Nazwa stanowiska
        /// </summary>
        private string nazwa;

        public string Nazwa
        {
            get { return this.nazwa; }
            set { this.nazwa = value; }
        }

        /// <summary>
        /// Konstrukotr tworzący obiekt Stanowisko
        /// </summary>
        /// <param name="ids">Id stanowiska</param>
        /// <param name="n">Nazwa</param>
        public Stanowisko(int ids, string n)
        {
            this.id_stanowiska = ids;
            this.nazwa = n;
        }

        public Stanowisko()
            : this(0, "")
        { }

         public string Error
        {
            get { return string.Empty; }
        }

         public string this[string propertyName]
         {
             get
             {
                 string result = string.Empty;
                 propertyName = propertyName ?? string.Empty;

                 if (propertyName == "Nazwa")
                 {
                     if (string.IsNullOrEmpty(this.Nazwa))
                     {
                         result = "Pole \"Nazwa\" nie może być puste";
                     }
                     else if (Regex.IsMatch(this.Nazwa, @"[@£_^{}\[~\]|ÆæßÉ!¤%&'()\*\+,.:;<=>§?]+"))
                     {
                         result = "Pole \"Nazwa\" zawiera niedozwolone znaki";
                     }

                 }
                 return result;
             }
         }
    }
}
